This notebook demonstrates how to use the spatialLIBD package with publicly available DLPFC Visium data accessed via ExperimentHub. It covers loading preprocessed data, exploring object structure, visualizing layers and gene expression, and accessing precomputed modeling results for layer-enriched genes.

Libraries

Load the required packages.

library(spatialLIBD) # main package, for spatial transcriptomics analysis & visualization
## Loading required package: SpatialExperiment
## Loading required package: SingleCellExperiment
## Loading required package: SummarizedExperiment
## Loading required package: MatrixGenerics
## Loading required package: matrixStats
## 
## Attaching package: 'MatrixGenerics'
## The following objects are masked from 'package:matrixStats':
## 
##     colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
##     colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
##     colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
##     colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
##     colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
##     colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
##     colWeightedMeans, colWeightedMedians, colWeightedSds,
##     colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
##     rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
##     rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
##     rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
##     rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
##     rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
##     rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
##     rowWeightedSds, rowWeightedVars
## Loading required package: GenomicRanges
## Loading required package: stats4
## Loading required package: BiocGenerics
## Loading required package: generics
## 
## Attaching package: 'generics'
## The following objects are masked from 'package:base':
## 
##     as.difftime, as.factor, as.ordered, intersect, is.element, setdiff,
##     setequal, union
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     anyDuplicated, aperm, append, as.data.frame, basename, cbind,
##     colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
##     get, grep, grepl, is.unsorted, lapply, Map, mapply, match, mget,
##     order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank,
##     rbind, Reduce, rownames, sapply, saveRDS, table, tapply, unique,
##     unsplit, which.max, which.min
## Loading required package: S4Vectors
## 
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:utils':
## 
##     findMatches
## The following objects are masked from 'package:base':
## 
##     expand.grid, I, unname
## Loading required package: IRanges
## Loading required package: GenomeInfoDb
## Loading required package: Biobase
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
## 
## Attaching package: 'Biobase'
## The following object is masked from 'package:MatrixGenerics':
## 
##     rowMedians
## The following objects are masked from 'package:matrixStats':
## 
##     anyMissing, rowMedians
library(SpatialExperiment) # data container, object structure
library(scater) # basic QC, normalization, dimensionality reduction
## Loading required package: scuttle
## Loading required package: ggplot2

Load Data

# lets fetch one of the public datasets
# uses a cached copy after first download
spe <- spatialLIBD::fetch_data(type = "spe")
## 2025-11-23 17:10:13.018228 loading file /Users/chayce/Library/Caches/org.R-project.R/R/BiocFileCache/4c83fa984c0_Human_DLPFC_Visium_processedData_sce_scran_spatialLIBD.Rdata%3Fdl%3D1
# this is the preprocessed DLPFC visium dataset
# stored as a spatialexperiment object
# commonly used for practicing, testing, benchmarking new computational methods
spe
## class: SpatialExperiment 
## dim: 33538 47681 
## metadata(0):
## assays(2): counts logcounts
## rownames(33538): ENSG00000243485 ENSG00000237613 ... ENSG00000277475
##   ENSG00000268674
## rowData names(9): source type ... gene_search is_top_hvg
## colnames(47681): AAACAACGAATAGTTC-1 AAACAAGTATCTCCCA-1 ...
##   TTGTTTCCATACAACT-1 TTGTTTGTGTAAATTC-1
## colData names(69): sample_id Cluster ... array_row array_col
## reducedDimNames(6): PCA TSNE_perplexity50 ... TSNE_perplexity80
##   UMAP_neighbors15
## mainExpName: NULL
## altExpNames(0):
## spatialCoords names(2) : pxl_col_in_fullres pxl_row_in_fullres
## imgData names(4): sample_id image_id data scaleFactor
# now lets fetch a reference dataset
# i believe this one was manually annotated for layers
# this is a commonly used companion to the spe dataset above
# used as a reference for layer marker discovery and benchmarking new methods
sce_layer <- spatialLIBD::fetch_data(type = "sce_layer")
## 2025-11-23 17:10:19.224866 loading file /Users/chayce/Library/Caches/org.R-project.R/R/BiocFileCache/67179f951fd_Human_DLPFC_Visium_processedData_sce_scran_sce_layer_spatialLIBD.Rdata%3Fdl%3D1
sce_layer
## class: SingleCellExperiment 
## dim: 22331 76 
## metadata(0):
## assays(2): counts logcounts
## rownames(22331): ENSG00000243485 ENSG00000238009 ... ENSG00000278384
##   ENSG00000271254
## rowData names(10): source type ... is_top_hvg is_top_hvg_sce_layer
## colnames(76): 151507_Layer1 151507_Layer2 ... 151676_Layer6 151676_WM
## colData names(13): sample_name layer_guess ...
##   layer_guess_reordered_short spatialLIBD
## reducedDimNames(6): PCA TSNE_perplexity5 ... UMAP_neighbors15 PCAsub
## mainExpName: NULL
## altExpNames(0):

Explore Object Structure

# lets take a look at the assays stored in the spe object
assayNames(spe) # counts & logcounts
## [1] "counts"    "logcounts"
# lets take a look at the columns in the spe object
colnames(colData(spe)) # sample ids, qc metrics, precomputed annotations, markers
##  [1] "sample_id"                   "Cluster"                    
##  [3] "sum_umi"                     "sum_gene"                   
##  [5] "subject"                     "position"                   
##  [7] "replicate"                   "subject_position"           
##  [9] "discard"                     "key"                        
## [11] "cell_count"                  "SNN_k50_k4"                 
## [13] "SNN_k50_k5"                  "SNN_k50_k6"                 
## [15] "SNN_k50_k7"                  "SNN_k50_k8"                 
## [17] "SNN_k50_k9"                  "SNN_k50_k10"                
## [19] "SNN_k50_k11"                 "SNN_k50_k12"                
## [21] "SNN_k50_k13"                 "SNN_k50_k14"                
## [23] "SNN_k50_k15"                 "SNN_k50_k16"                
## [25] "SNN_k50_k17"                 "SNN_k50_k18"                
## [27] "SNN_k50_k19"                 "SNN_k50_k20"                
## [29] "SNN_k50_k21"                 "SNN_k50_k22"                
## [31] "SNN_k50_k23"                 "SNN_k50_k24"                
## [33] "SNN_k50_k25"                 "SNN_k50_k26"                
## [35] "SNN_k50_k27"                 "SNN_k50_k28"                
## [37] "GraphBased"                  "Maynard"                    
## [39] "Martinowich"                 "layer_guess"                
## [41] "layer_guess_reordered"       "layer_guess_reordered_short"
## [43] "expr_chrM"                   "expr_chrM_ratio"            
## [45] "SpatialDE_PCA"               "SpatialDE_pool_PCA"         
## [47] "HVG_PCA"                     "pseudobulk_PCA"             
## [49] "markers_PCA"                 "SpatialDE_UMAP"             
## [51] "SpatialDE_pool_UMAP"         "HVG_UMAP"                   
## [53] "pseudobulk_UMAP"             "markers_UMAP"               
## [55] "SpatialDE_PCA_spatial"       "SpatialDE_pool_PCA_spatial" 
## [57] "HVG_PCA_spatial"             "pseudobulk_PCA_spatial"     
## [59] "markers_PCA_spatial"         "SpatialDE_UMAP_spatial"     
## [61] "SpatialDE_pool_UMAP_spatial" "HVG_UMAP_spatial"           
## [63] "pseudobulk_UMAP_spatial"     "markers_UMAP_spatial"       
## [65] "spatialLIBD"                 "ManualAnnotation"           
## [67] "in_tissue"                   "array_row"                  
## [69] "array_col"

Visualize Layers

# vis_clus() creates a spatial cluster plot
# tissue image + all the spots + colored by clustervar
spatialLIBD::vis_clus(
    spe = spe, # spatialexperiment object, data
    clustervar = "layer_guess_reordered", # which column in spe for the cluster/layer
    sampleid = "151673", # specific sample / tissue section
    colors = libd_layer_colors, # color palette
    title = " spe layers" # title
)

# optionally save the figure:
# ggsave("figures/qc_spe_layers.png", width = 6, height = 4)

Visualize Gene Expression

# vis_gene() is used to plot expression for a specific gene
spatialLIBD::vis_gene(
    spe = spe, # spatialexperiment object
    sampleid = "151673", # specific sample / tissue section
    geneid = "ENSG00000132639", # gene SNAP25
    viridis = FALSE # color palette
)

# optionally save the figure:
# ggsave("figures/spatial_snap25.png", width = 6, height = 4)
# vis_gene() is used to plot expression for a specific gene
spatialLIBD::vis_gene(
    spe = spe, # spatialexperiment object / data
    sampleid = "151673", # specific sample / tissue section
    geneid = "ENSG00000168314", # gene MOBP
    viridis = FALSE # color palette
)

# optionally save the figure:
# ggsave("figures/spatial_mobp.png", width = 6, height = 4)
# vis_gene() is used to plot expression for a specific gene
spatialLIBD::vis_gene(
    spe = spe, # spatialexperiment object / data
    sampleid = "151673", # specific sample / tissue section
    geneid = "ENSG00000183036", # gene PCP4
    viridis = FALSE # color palette
)

# optionally save the figure:
# ggsave("figures/spatial_pcp4.png", width = 6, height = 4)

Modeling Results and Significant Genes

# modeling_results fetches a precomputed modeling results object
# statistical model ouputs used in the Maynard et al. (2021) DLPFC spatial transcriptomics analysis paper
# modeling_results is the results of the statistical layer-level modeling used in the original DLPFC analysis.
# this allows us to benchmark our own methods and compare it to the precomputed results 
# (likely outdated? need to see if this is kept up-to-date)
modeling_results <- spatialLIBD::fetch_data("modeling_results")
## 2025-11-23 17:10:21.527666 loading file /Users/chayce/Library/Caches/org.R-project.R/R/BiocFileCache/6715f75f79a_Human_DLPFC_Visium_modeling_results.Rdata%3Fdl%3D1
# head(modeling_results)
# sig_genes_extract_all() extracts significant layer enriched genes, based on the 
# precomputed statistical models and data
# finds the top genes that differentiate the layers
system.time( # this just measures the time it takes to run
    sig_genes <-
        spatialLIBD::sig_genes_extract_all(
            n = nrow(sce_layer), # matches the number of layers that were in our reference
            modeling_results = modeling_results,
            sce_layer = sce_layer
        )
)
##    user  system elapsed 
##   2.108   0.124   2.234
head(sig_genes)
## DataFrame with 6 rows and 12 columns
##         top  model_type        test        gene      stat        pval
##   <integer> <character> <character> <character> <numeric>   <numeric>
## 1         1  enrichment          WM       NDRG1   16.3053 1.25896e-26
## 2         2  enrichment          WM      PTP4A2   16.1469 2.25133e-26
## 3         3  enrichment          WM        AQP1   15.9927 3.97849e-26
## 4         4  enrichment          WM       PAQR6   15.1971 7.86258e-25
## 5         5  enrichment          WM      ANP32B   14.9798 1.80183e-24
## 6         6  enrichment          WM        JAM3   14.7413 4.50756e-24
##           fdr gene_index         ensembl           in_rows       in_rows_top20
##     <numeric>  <integer>     <character>     <IntegerList>       <IntegerList>
## 1 2.51372e-22      10404 ENSG00000104419 1,40215,65023,... 1,156337,223320,...
## 2 2.51372e-22        487 ENSG00000184007 2,40531,64532,... 2,223323,245661,...
## 3 2.96145e-22       8201 ENSG00000240583 3,32241,65062,... 3,223314,245643,...
## 4 4.38948e-21       1501 ENSG00000160781 4,34318,65863,...     4,245654,267982
## 5 8.04735e-21      10962 ENSG00000136938 5,28964,63931,...     5,223329,267975
## 6 1.67295e-20      12600 ENSG00000166086 6,40868,65917,... 6,156334,223324,...
##                                       results
##                               <CharacterList>
## 1 WM_top1,WM-Layer1_top20,WM-Layer4_top10,...
## 2 WM_top2,WM-Layer4_top13,WM-Layer5_top20,...
## 3   WM_top3,WM-Layer4_top4,WM-Layer5_top2,...
## 4     WM_top4,WM-Layer5_top13,WM-Layer6_top10
## 5      WM_top5,WM-Layer4_top19,WM-Layer6_top3
## 6 WM_top6,WM-Layer1_top17,WM-Layer4_top14,...
## Create a boxplot of the first gene in `sig_genes`.
# set.seed(20200206)
# lets create a boxplot for a specific gene (MOBP) to compare it across layers
spatialLIBD::layer_boxplot(sig_genes = sig_genes[sig_genes$gene == "MOBP",], sce_layer = sce_layer)

# optionally save the figure:
# ggsave("figures/boxplot_mobp.png", width = 6, height = 4)

Interactive App (Optional)

# spatialLIBD::run_app(spe = spe, sce_layer = sce_layer, launch.browser = TRUE)

Session Info

# session info
sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.5.1 (2025-06-13)
##  os       macOS Tahoe 26.1
##  system   aarch64, darwin24.4.0
##  ui       unknown
##  language (EN)
##  collate  en_US.UTF-8
##  ctype    en_US.UTF-8
##  tz       America/New_York
##  date     2025-11-23
##  pandoc   3.6.3 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
##  quarto   1.7.32 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/quarto
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package              * version   date (UTC) lib source
##  abind                  1.4-8     2024-09-12 [1] CRAN (R 4.5.1)
##  AnnotationDbi          1.70.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  AnnotationHub          3.16.1    2025-07-23 [1] Bioconductor 3.21 (R 4.5.1)
##  attempt                0.3.1     2020-05-03 [1] CRAN (R 4.5.1)
##  beachmat               2.24.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  beeswarm               0.4.0     2021-06-01 [1] CRAN (R 4.5.1)
##  benchmarkme            1.0.8     2022-06-12 [1] CRAN (R 4.5.1)
##  benchmarkmeData        1.0.4     2020-04-23 [1] CRAN (R 4.5.1)
##  Biobase              * 2.68.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocFileCache          2.16.2    2025-08-27 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocGenerics         * 0.54.1    2025-10-12 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocIO                 1.18.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocManager            1.30.26   2025-06-05 [1] CRAN (R 4.5.1)
##  BiocNeighbors          2.2.0     2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocParallel           1.42.2    2025-09-14 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocSingular           1.24.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  BiocVersion            3.21.1    2024-10-29 [1] Bioconductor 3.21 (R 4.5.1)
##  Biostrings             2.76.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  bit                    4.6.0     2025-03-06 [1] CRAN (R 4.5.1)
##  bit64                  4.6.0-1   2025-01-16 [1] CRAN (R 4.5.1)
##  bitops                 1.0-9     2024-10-03 [1] CRAN (R 4.5.1)
##  blob                   1.2.4     2023-03-17 [1] CRAN (R 4.5.1)
##  bslib                  0.9.0     2025-01-30 [1] CRAN (R 4.5.1)
##  cachem                 1.1.0     2024-05-16 [1] CRAN (R 4.5.1)
##  circlize               0.4.16    2024-02-20 [1] CRAN (R 4.5.1)
##  cli                    3.6.5     2025-04-23 [1] CRAN (R 4.5.1)
##  clue                   0.3-66    2024-11-13 [1] CRAN (R 4.5.1)
##  cluster                2.1.8.1   2025-03-12 [2] CRAN (R 4.5.1)
##  codetools              0.2-20    2024-03-31 [2] CRAN (R 4.5.1)
##  colorspace             2.1-2     2025-09-22 [1] CRAN (R 4.5.1)
##  ComplexHeatmap         2.24.1    2025-06-25 [1] Bioconductor 3.21 (R 4.5.1)
##  config                 0.3.2     2023-08-30 [1] CRAN (R 4.5.1)
##  cowplot                1.2.0     2025-07-07 [1] CRAN (R 4.5.1)
##  crayon                 1.5.3     2024-06-20 [1] CRAN (R 4.5.1)
##  curl                   7.0.0     2025-08-19 [1] CRAN (R 4.5.1)
##  data.table             1.17.8    2025-07-10 [1] CRAN (R 4.5.1)
##  DBI                    1.2.3     2024-06-02 [1] CRAN (R 4.5.1)
##  dbplyr                 2.5.1     2025-09-10 [1] CRAN (R 4.5.1)
##  DelayedArray           0.34.1    2025-04-17 [1] Bioconductor 3.21 (R 4.5.1)
##  digest                 0.6.37    2024-08-19 [1] CRAN (R 4.5.1)
##  doParallel             1.0.17    2022-02-07 [1] CRAN (R 4.5.1)
##  dplyr                  1.1.4     2023-11-17 [1] CRAN (R 4.5.1)
##  DT                     0.34.0    2025-09-02 [1] CRAN (R 4.5.1)
##  edgeR                  4.6.3     2025-07-09 [1] Bioconductor 3.21 (R 4.5.1)
##  evaluate               1.0.5     2025-08-27 [1] CRAN (R 4.5.1)
##  ExperimentHub          2.16.1    2025-07-23 [1] Bioconductor 3.21 (R 4.5.1)
##  farver                 2.1.2     2024-05-13 [1] CRAN (R 4.5.1)
##  fastmap                1.2.0     2024-05-15 [1] CRAN (R 4.5.1)
##  filelock               1.0.3     2023-12-11 [1] CRAN (R 4.5.1)
##  foreach                1.5.2     2022-02-02 [1] CRAN (R 4.5.1)
##  generics             * 0.1.4     2025-05-09 [1] CRAN (R 4.5.1)
##  GenomeInfoDb         * 1.44.3    2025-09-21 [1] Bioconductor 3.21 (R 4.5.1)
##  GenomeInfoDbData       1.2.14    2025-10-08 [1] Bioconductor
##  GenomicAlignments      1.44.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  GenomicRanges        * 1.60.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  GetoptLong             1.0.5     2020-12-15 [1] CRAN (R 4.5.1)
##  ggbeeswarm             0.7.2     2023-04-29 [1] CRAN (R 4.5.1)
##  ggplot2              * 4.0.0     2025-09-11 [1] CRAN (R 4.5.1)
##  ggrepel                0.9.6     2024-09-07 [1] CRAN (R 4.5.1)
##  GlobalOptions          0.1.2     2020-06-10 [1] CRAN (R 4.5.1)
##  glue                   1.8.0     2024-09-30 [1] CRAN (R 4.5.1)
##  golem                  0.5.1     2024-08-27 [1] CRAN (R 4.5.1)
##  gridExtra              2.3       2017-09-09 [1] CRAN (R 4.5.1)
##  gtable                 0.3.6     2024-10-25 [1] CRAN (R 4.5.1)
##  htmltools              0.5.8.1   2024-04-04 [1] CRAN (R 4.5.1)
##  htmlwidgets            1.6.4     2023-12-06 [1] CRAN (R 4.5.1)
##  httpuv                 1.6.16    2025-04-16 [1] CRAN (R 4.5.1)
##  httr                   1.4.7     2023-08-15 [1] CRAN (R 4.5.1)
##  IRanges              * 2.42.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  irlba                  2.3.5.1   2022-10-03 [1] CRAN (R 4.5.1)
##  iterators              1.0.14    2022-02-05 [1] CRAN (R 4.5.1)
##  jquerylib              0.1.4     2021-04-26 [1] CRAN (R 4.5.1)
##  jsonlite               2.0.0     2025-03-27 [1] CRAN (R 4.5.1)
##  KEGGREST               1.48.1    2025-06-22 [1] Bioconductor 3.21 (R 4.5.1)
##  knitr                  1.50      2025-03-16 [1] CRAN (R 4.5.1)
##  labeling               0.4.3     2023-08-29 [1] CRAN (R 4.5.1)
##  later                  1.4.4     2025-08-27 [1] CRAN (R 4.5.1)
##  lattice                0.22-7    2025-04-02 [2] CRAN (R 4.5.1)
##  lazyeval               0.2.2     2019-03-15 [1] CRAN (R 4.5.1)
##  lifecycle              1.0.4     2023-11-07 [1] CRAN (R 4.5.1)
##  limma                  3.64.3    2025-08-03 [1] Bioconductor 3.21 (R 4.5.1)
##  locfit                 1.5-9.12  2025-03-05 [1] CRAN (R 4.5.1)
##  magick                 2.9.0     2025-09-08 [1] CRAN (R 4.5.1)
##  magrittr               2.0.4     2025-09-12 [1] CRAN (R 4.5.1)
##  Matrix                 1.7-4     2025-08-28 [2] CRAN (R 4.5.1)
##  MatrixGenerics       * 1.20.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  matrixStats          * 1.5.0     2025-01-07 [1] CRAN (R 4.5.1)
##  memoise                2.0.1     2021-11-26 [1] CRAN (R 4.5.1)
##  mime                   0.13      2025-03-17 [1] CRAN (R 4.5.1)
##  otel                   0.2.0     2025-08-29 [1] CRAN (R 4.5.1)
##  paletteer              1.6.0     2024-01-21 [1] CRAN (R 4.5.1)
##  pillar                 1.11.1    2025-09-17 [1] CRAN (R 4.5.1)
##  pkgconfig              2.0.3     2019-09-22 [1] CRAN (R 4.5.1)
##  plotly                 4.11.0    2025-06-19 [1] CRAN (R 4.5.1)
##  png                    0.1-8     2022-11-29 [1] CRAN (R 4.5.1)
##  promises               1.5.0     2025-11-01 [1] CRAN (R 4.5.1)
##  purrr                  1.1.0     2025-07-10 [1] CRAN (R 4.5.1)
##  R6                     2.6.1     2025-02-15 [1] CRAN (R 4.5.1)
##  rappdirs               0.3.3     2021-01-31 [1] CRAN (R 4.5.1)
##  RColorBrewer           1.1-3     2022-04-03 [1] CRAN (R 4.5.1)
##  Rcpp                   1.1.0     2025-07-02 [1] CRAN (R 4.5.1)
##  RCurl                  1.98-1.17 2025-03-22 [1] CRAN (R 4.5.1)
##  rematch2               2.1.2     2020-05-01 [1] CRAN (R 4.5.1)
##  restfulr               0.0.16    2025-06-27 [1] CRAN (R 4.5.1)
##  rjson                  0.2.23    2024-09-16 [1] CRAN (R 4.5.1)
##  rlang                  1.1.6     2025-04-11 [1] CRAN (R 4.5.1)
##  rmarkdown              2.30      2025-09-28 [1] CRAN (R 4.5.1)
##  Rsamtools              2.24.1    2025-09-07 [1] Bioconductor 3.21 (R 4.5.1)
##  RSQLite                2.4.3     2025-08-20 [1] CRAN (R 4.5.1)
##  rstudioapi             0.17.1    2024-10-22 [1] CRAN (R 4.5.1)
##  rsvd                   1.0.5     2021-04-16 [1] CRAN (R 4.5.1)
##  rtracklayer            1.68.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  S4Arrays               1.8.1     2025-06-01 [1] Bioconductor 3.21 (R 4.5.1)
##  S4Vectors            * 0.46.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  S7                     0.2.0     2024-11-07 [1] CRAN (R 4.5.1)
##  sass                   0.4.10    2025-04-11 [1] CRAN (R 4.5.1)
##  ScaledMatrix           1.16.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  scales                 1.4.0     2025-04-24 [1] CRAN (R 4.5.1)
##  scater               * 1.36.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  scuttle              * 1.18.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  sessioninfo            1.2.3     2025-02-05 [1] CRAN (R 4.5.1)
##  shape                  1.4.6.1   2024-02-23 [1] CRAN (R 4.5.1)
##  shiny                  1.11.1    2025-07-03 [1] CRAN (R 4.5.1)
##  shinyWidgets           0.9.0     2025-02-21 [1] CRAN (R 4.5.1)
##  SingleCellExperiment * 1.30.1    2025-05-07 [1] Bioconductor 3.21 (R 4.5.1)
##  SparseArray            1.8.1     2025-07-23 [1] Bioconductor 3.21 (R 4.5.1)
##  SpatialExperiment    * 1.18.1    2025-05-11 [1] Bioconductor 3.21 (R 4.5.1)
##  spatialLIBD          * 1.20.1    2025-05-01 [1] Bioconductor 3.21 (R 4.5.1)
##  statmod                1.5.1     2025-10-09 [1] CRAN (R 4.5.1)
##  stringi                1.8.7     2025-03-27 [1] CRAN (R 4.5.1)
##  stringr                1.5.2     2025-09-08 [1] CRAN (R 4.5.1)
##  SummarizedExperiment * 1.38.1    2025-04-30 [1] Bioconductor 3.21 (R 4.5.1)
##  tibble                 3.3.0     2025-06-08 [1] CRAN (R 4.5.1)
##  tidyr                  1.3.1     2024-01-24 [1] CRAN (R 4.5.1)
##  tidyselect             1.2.1     2024-03-11 [1] CRAN (R 4.5.1)
##  UCSC.utils             1.4.0     2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  vctrs                  0.6.5     2023-12-01 [1] CRAN (R 4.5.1)
##  vipor                  0.4.7     2023-12-18 [1] CRAN (R 4.5.1)
##  viridis                0.6.5     2024-01-29 [1] CRAN (R 4.5.1)
##  viridisLite            0.4.2     2023-05-02 [1] CRAN (R 4.5.1)
##  withr                  3.0.2     2024-10-28 [1] CRAN (R 4.5.1)
##  xfun                   0.54      2025-10-30 [1] CRAN (R 4.5.1)
##  XML                    3.99-0.19 2025-08-22 [1] CRAN (R 4.5.1)
##  xtable                 1.8-4     2019-04-21 [1] CRAN (R 4.5.1)
##  XVector                0.48.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.1)
##  yaml                   2.3.10    2024-07-26 [1] CRAN (R 4.5.1)
## 
##  [1] /opt/homebrew/lib/R/4.5/site-library
##  [2] /opt/homebrew/Cellar/r/4.5.1/lib/R/library
##  * ── Packages attached to the search path.
## 
## ──────────────────────────────────────────────────────────────────────────────